﻿using Newtonsoft.Json;
using WMS.FC.Domain.DomainObject.System;
using WMS.FC.Domain.ValueObject.Menu;

namespace WMS.FC.Domain.DataTransferObject.Menu
{
    /// <summary>
    /// 编辑菜单DTO
    /// </summary>
    public class EditMenuDTO : RequestBase
    {
        /// <summary>
        /// 主键
        /// </summary>
        [JsonProperty("id")]
        public string Id { get; set; } = string.Empty;

        /// <summary>
        /// 中文名称
        /// </summary>
        [JsonProperty("nameCN")]
        public string NameCN { get; set; } = string.Empty;

        /// <summary>
        /// 英文名称
        /// </summary>
        [JsonProperty("nameEN")]
        public string? NameEN { get; set; }

        /// <summary>
        /// 图标
        /// </summary>
        [JsonProperty("icon")]
        public string Icon { get; set; } = string.Empty;

        /// <summary>
        /// 类型编码
        /// </summary>
        [JsonProperty("typeCode")]
        public string TypeCode { get; set; } = string.Empty;

        /// <summary>
        /// 菜单位置
        /// </summary>
        [JsonProperty("menuPositionCode")]
        public string MenuPositionCode { get; set; } = string.Empty;

        /// <summary>
        /// 排序
        /// </summary>
        [JsonProperty("sortNumber")]
        public int SortNumber { get; set; }

        /// <summary>
        /// 菜单地址
        /// </summary>
        [JsonProperty("url")]
        public string? Url { get; set; }

        /// <summary>
        /// SQL
        /// </summary>
        [JsonProperty("sql")]
        public string? Sql { get; set; }

        /// <summary>
        /// 字段列表
        /// </summary>
        [JsonProperty("columnList")]
        public List<ColumnVO> ColumnList { get; set; } = new List<ColumnVO>();
    }
}
